// ModelAsset.h provides the attributes of the ModelAsset class
//-----------------

#if !defined( ModelAssetH)
#define ModelAssetH

//-----------------
// Includes various libraries and files
#include <cassert>		// for asserts
#include <d3dx9.h>		// Direct 3D library (for all Direct 3D functions)
#include <string>

#include "constants.h"
#include "Mesh.h"
//-----------------

class ModelAsset {
	public:
		// constructor and destructor
		ModelAsset();
		ModelAsset( const ModelAsset& m);
		~ModelAsset();

		// accessors
		Mesh* get_mesh() const;
		std::string get_file_name() const;
		std::string get_asset_name() const;
		int get_asset_type() const;
		float get_dimension_x() const;
		float get_dimension_y() const;
		float get_dimension_z() const;

		// mutators
		void set_mesh( Mesh* m);
		void set_asset_name( const std::string& a);
		void set_asset_type( const int& t);
		void set_dimensions( const float& x, const float& y, const float& z);

		void fill_in_the_blanks( const int& m);		// temporary function until the user is able to enter an asset's information

		// overloaded operator
		bool operator ==( const ModelAsset& a) const;
		bool operator <( const ModelAsset& a) const;
		bool operator >( const ModelAsset& a) const;
	private:
		Mesh* mesh_;
		D3DXVECTOR3 dimensions_;

		std::string file_name_;
		std::string asset_name_;
		int asset_type_;
};

#endif